public class Test2 {
    public static void main(String[] args) {
        /**
         * 字符串类型：
         * 1.C语言中没有字符串类型而java有
         */
        String str = "     hello";
//      和c不一样不是以\0结尾
        System.out.println(str.length());
        System.out.println(str.toUpperCase());
        System.out.println(str.trim());
        System.out.println(str.replace("he","wo"));
        int a = 10;
        int b = 20;
        System.out.println("a = "+a+" b = "+b);
        System.out.println("a+b=" +a+b);
    }
//    CPU--》》读取内存时是以4个字节大小为单位读取的
    public static void main3(String[] args) {
        byte a = 1;
        byte b = 2;
//      byte c = a+b;
//      整型提升：所有小于4个字节的数据进行运算的时候，都会先提升为4个字节，然后参与运算
        byte c = (byte)(a+b);
        System.out.println(c);

        int i = 10;
        float f = 19.9f;
//      i = f;
//      虽然你们都是4个字节，都是float能表示的数据宽度，除了可以表示整数还可以表示小数
//      把这个数值给整数，编译器不许这样做，为什么呢？整数是可以给但是小数怎么办？？

        int d = 100;
        long e = 200L;
//      int g = a+b;
//      不同类型数据进行计算时会将小的类型转换成大的类型
    }
    public static void main2(String[] args) {
        //类型转换  1.自动类型转换(隐式类型转换)   2.强制类型转换
        int a = 10;
        long b = 100L;
        b = a;//【自动类型转换---》小给大】
        a = (int)b;//【强制类型转换】
    }
    public static void main1(String[] args) {
        /**
         * 布尔类型：
         * 1.java里没有0是假非0是真
         * 2.boolean比较特殊没有明确大小
         * 3.Boolean为boolean的包装类
         */
        boolean flg = true;
        boolean flg2 = false;
        System.out.println(flg);
        System.out.println(flg2);
    }
}
